package com.cib.xagcjs.dal;

import com.cib.xagcjs.dto.EcnyLockDTO;
import com.cib.xagcjs.dto.EcnyLockDetailDTO;
import com.cib.xagcjs.vo.EcnyLockListVO;
import com.cib.xagcjs.vo.EcnyLockVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数币冻结通知接口映射
 */
@Mapper
public interface EcnyLockMapper {
    /**
     * 数币冻结记录主表入库
     * @param data 冻结主表信息
     * @return 执行影响的行数
     */
    int insertLock(@Param("data") EcnyLockDTO data);

    /**
     * 冻结明细表入库
     * @param ecnyLockDetailDTO 冻结明细信息
     * @return 执行影响的行数
     */
    int insertLockDetail(@Param("dto") EcnyLockDetailDTO ecnyLockDetailDTO, @Param("transId") String transId);

    /**
     * 获取冻结主表冻结状态已经更改为 2 已冻结 列表
     * @param status 状态 已冻结
     * @return 列表
     */
    List<EcnyLockVO> selectLock(@Param("status") int status);

    /**
     * 根据这个批次的transId 获取下面所有 状态 1-成功 的列表
     * @param transId 唯一交易ID
     * @return 列表
     */
    List<EcnyLockListVO> selectLockList(@Param("transId") String transId, @Param("status") int status);

    /**
     * 修改冻结通知表状态为 3 已反馈
     * @param transId 唯一交易ID
     * @param status 状态
     */
    void updateLockStatus(@Param("transId") String transId, @Param("status") int status);
}
